1. Field of the Invention
The present invention relates to a storage control apparatus for managing data using such a physical disk as a magnetic disk and the method thereof, and more particularly to a storage control apparatus having duplex controller, and the method thereof.
2. Description of the Related Art
In storage device using such a storage medium as a magnetic disk, magneto-optical disk and optical disk, the storage medium is actually accessed by the request of the data processing apparatus. When a data processing apparatus uses large capacity data, a storage apparatus using a plurality of storage device and control apparatus is used.
In such a storage apparatus, a redundant configuration is adopted to improve the reliability of stored data and the reliability of the apparatus. FIG. 12 is a diagram depicting prior art.
As FIG. 12 shows, a plurality of storage device (disk device) 150-1 to 150-n are connected to a pair of controllers 100 and 110 which are connected to a host respectively. For the redundant configuration, a multiplexed disk configuration called a RAID (Redundant Array of Inexpensive (or Independent) Disks) is normally used for the disk apparatus 150-1 to 150-n. The controller is duplex, that is, comprised of a pair of controllers 100 and 110.
Therefore normally both controllers 100 and 110 share the disk device 150-1 to 150-n for control, and even if one controller (e.g. 100) fails, the other controller (e.g. 110) can control the disk apparatus 150-1 to 150-n. 
Also to improve the response of host access, the cache memories 120 and 130 are disposed in the controllers 100 and 110. These cache memories 120 and 130 have a read/write area and a mirror area, and in the read/write area, a part of the data of the disk device, which the controller itself takes charge of, and the write data from the host, are stored.
In other words, for read access from the host, the data of the cache memory is read and transferred without actually accessing the disk device if the target data is stored in the cache memories 120 and 130. For write access from the host, the write data is written to the cache memories 120 and 130 and writing is completed. The write data of the cache memories 120 and 130 is written back to the target disk drive at idle time during processing.
The mirror area is for one controller 100 or 110 to copy the write data written in cache memory 120 or 130 of the self to the cache memory 130 or 120 of the other controller 110 or 100 for duplex controllers. By this, it can prevent to loose data since even if one controller fails, the other controller holds the write data before the write back of the one controller in the mirror area.
This mirroring of a write data has been performed as follows. Here the case when write access is sent to the controller 100 will be described, but the case when write access is sent to the controller 110 is the same as well
When a data write request is received from the host, ([1]), the controller 100 allocates a write page of the cache memory 120 ([2]). Then the controller 100 sends a request to acquire a mirror page of the cache memory 130 to the controller 110 ([3]). The controller 110 allocates the mirror page of the cache memory 130 ([4]), and then notifies acquisition of the mirror page to the controller 100 ([5]).
Then the data from the host is written to the allocated page of the cache memory 120 ([6]). The data written in the cache memory 120 is copied to the allocated mirror page of the controller 110 ([7]). And after copying completes, the controller 100 notifies a data write completion report to the host ([8]).
In this way, mirroring of the write data has been performed (e.g. Japanese Patent Application Laid-Open No. 2002-132453).
In prior art, the controllers 100 and 120 must exchange the messages of an acquisition request and an acquisition response to acquire the mirror page, so load on the hardware between controllers is high. This makes it difficult to improve performance when the write data is mirrored.
Also to acquire the mirror page, program operation is necessary for the other controller (controller 110 in FIG. 12), so load is generated at the other controller even though processing of one controller. Therefore, it is difficult to improve performance using two controllers.